package it.orma.iridehr.entities;

import java.io.Serializable;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.OrderBy;
import javax.persistence.Table;

@Entity
@Table(name = "LINGUE_CONOSCIUTE")
public class LingueConosciute extends EntitaBase implements Serializable{

	/**
	 * 
	 */
	private static final long serialVersionUID = 6771073576753484303L;
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name = "ID_LINGUA_CONOSCIUTA")
	private Long idLinguaConosciuta;
	
	@Column(name ="DS_LINGUA_MADRE1", length = 100)
	private String linguaMadre1;
	
	@Column(name ="DS_LINGUA_MADRE2", length = 100)
	private String linguaMadre2;
	
	@OneToMany
	@JoinColumn(name = "FK_LINGUA_CONOSCIUTA", referencedColumnName = "ID_LINGUA_CONOSCIUTA")
	@OrderBy("lingua asc")
	private Set<AltraLingua> altreLingue;

	@Column(name = "DS_ESPERIENZA_ESTERO")
	@Lob
	private String esperienzaEstero;
	
	@OneToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "FK_SCHEDA_CANDIDATO")
	private SchedaCandidato schedaCandidato;
	
	public LingueConosciute() {
		super();
	}

	public Long getIdLinguaConosciuta() {
		return idLinguaConosciuta;
	}

	public void setIdLinguaConosciuta(Long idLinguaConosciuta) {
		this.idLinguaConosciuta = idLinguaConosciuta;
	}

	public String getLinguaMadre1() {
		return linguaMadre1;
	}

	public void setLinguaMadre1(String linguaMadre1) {
		this.linguaMadre1 = linguaMadre1;
	}

	public String getLinguaMadre2() {
		return linguaMadre2;
	}

	public void setLinguaMadre2(String linguaMadre2) {
		this.linguaMadre2 = linguaMadre2;
	}
	
	public Set<AltraLingua> getAltreLingue() {
		return altreLingue;
	}

	public void setAltreLingue(Set<AltraLingua> altreLingue) {
		this.altreLingue = altreLingue;
	}

	public String getEsperienzaEstero() {
		return esperienzaEstero;
	}

	public void setEsperienzaEstero(String esperienzaEstero) {
		this.esperienzaEstero = esperienzaEstero;
	}

	public SchedaCandidato getSchedaCandidato() {
		return schedaCandidato;
	}

	public void setSchedaCandidato(SchedaCandidato schedaCandidato) {
		this.schedaCandidato = schedaCandidato;
	}
	
	
}
